package main
/*
	调用bool isBadVersion(version)接口判断版本号是否在测试中出错
	尽可能少的调用接口
*/
func firstBadVersion(n int) int{
	//仍然是个二分查找问题，要找到第一个为真的版本
	//因为规定了n>=1所以不需要判断n=0的情况
	if n==1{
		//如果只有一个版本，必然是当前版本出错
		return 1
	}
	start := 1
	end := n
	for{
		middle := (start+end)>>1
		if start>end{
			break
		}
		if isBadVersion(middle){
			//如果为真，则判断前一个是否为假，如果是，这个就是要找的版本
			if middle==0 || !isBadVersion(middle-1){
				//如果当前就是第一个版本，则就是这个
				//或者当前版本为真，前一个为假
				return middle
			}else{
				//如果前一个也为真，就进行下一次循环,说明要找的在左侧
				end = middle -1
			}
		}else{
			//如果当前为假，说明要找到的在右侧
			start = middle +1
		}
	}
	return -1
}

func isBadVersion(version int) bool{
	//写个假的测试一下
	return true
}